<!DOCTYPE HTML>
<!--
	Dimension by HTML5 UP
	html5up.net | @ajlkn
	Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
-->
<html>
 <head>
  <title>
   Dimension by HTML5 UP
  </title>
  <!-- <meta charset="utf-8" /> -->
  <!-- <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" /> -->
  <meta charset="utf-8"/>
  <meta content="width=device-width,initial-scale=1.0" name="viewport"/>
  <link href="../../assets/css/article.css" rel="stylesheet"/>
  <link href="https://cdn.bootcss.com/highlight.js/9.15.8/styles/github.min.css" rel="stylesheet"/>
  <noscript>
   <link href="../../assets/css/noscript.css" rel="stylesheet"/>
  </noscript>
 </head>
 <body>
  <div id="app">
  </div>
  <!-- built files will be auto injected -->
 </body>
 <body class="is-preload">
  <!-- Wrapper -->
  <div id="wrapper">
   <!-- Main -->
   <div id="main">
    <article id="article">
     <h1 id="minetest-window">
      minetest Window编译运行
     </h1>
     <hr/>
     <h2 id="_1">
      简介
     </h2>
     <p>
      minetest是在GitHub开源的，使用C++编写的沙盒游戏：我的世界，一直以来对于该游戏的编写很是好奇，但在以前没有找到相关的源码（以前水平太菜了），今天逛GitHub的时候，发现这么一个项目，非常的感兴趣，于是想研究下。最开始肯定是本地运行了，博主的操作系统是Windows10
     </p>
     <h2 id="_2">
      编译运行
     </h2>
     <h3 id="_3">
      相关的工具下载安装
     </h3>
     <p>
      根据官网中的编译指南：
      <a href="https://github.com/minetest/minetest">
       GitHub README 中Windows编译部分
      </a>
      和
      <a href="https://www.youtube.com/watch?v=B4QnlJozFoM">
       YouTube上的编译教学视频
      </a>
      ,需要下载安装下面的工具，具体请查看视频，对新手还是比较友好了
     </p>
     <p>
      注：每个人的环境可能稍有不同，比如我就遇到了很多视频中没有遇到的问题，大部分都可以通过阅读官方文档解决，其他我遇到的在下面都有记录
     </p>
     <ul>
      <li>
       <a href="https://visualstudio.microsoft.com">
        Visual Studio 2015 or newer
       </a>
      </li>
      <li>
       <a href="https://cmake.org/download/">
        CMake
       </a>
      </li>
      <li>
       <a href="https://github.com/Microsoft/vcpkg">
        vcpkg
       </a>
      </li>
      <li>
       <a href="https://git-scm.com/downloads">
        Git
       </a>
      </li>
     </ul>
     <h3 id="vcpkg">
      vcpkg
     </h3>
     <p>
      执行下面的命令，国内的环境下面会很慢，如果遇到下载不了的，只能手动到网上去搜索下载
     </p>
     <p>
      温馨提示：一定要将其放到C盘下，然后执行相关的编译命令，博主放到D盘死活编译不过，放到C盘就继续编译下去了，离谱！
     </p>
     <p>
      该步骤初次博主花了1个小时左右，才完成了，各位老哥记得放C盘下啊！
     </p>
     <p>
      ```shell script
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./vcpkg install zlib curl[winssl] openal-soft libvorbis libogg sqlite3 freetype luajit gmp jsoncpp --triplet x64-windows
     </p>
     <div class="codehilite">
      <pre><span></span><code><span class="err">### Cmake</span>
<span class="err">在如视频中使用cmake gui的时候，遇到了下面的问题：</span>
</code></pre>
     </div>
     <p>
      Please add a manifest, or disable manifests by turning off
  VCPKG_MANIFEST_MODE.
     </p>
     <div class="codehilite">
      <pre><span></span><code><span class="err">这个错误的解决方式就是把：</span><span class="n">VCPKG_MANIFEST_MODE</span> <span class="err">勾选去掉</span>

<span class="err">还有下面一个错误：</span>
</code></pre>
     </div>
     <p>
      CMake Error at CMakeLists.txt:78 (message):
  IrrlichtMt is required to build the client, but it was not found.
     </p>
     <p>
      The Minetest team has forked Irrlicht to make their own customizations.  It
  can be found here: https://github.com/minetest/irrlicht
```
     </p>
     <p>
      下面就一直报这个错，终止通过看CmakeLists.txt发送可以通过另外的方式搞这个，目前博主是通过这种方式编译通过的：
     </p>
     <p>
      克隆：https://github.com/minetest/irrlicht, 到工程目录下，博主的是 D:\Code\C++\self\minetest\lib
     </p>
     <p>
      改名为：irrlichtmt
     </p>
     <p>
      Configuration 两次
     </p>
     <p>
      REQUIRE_LUAJIT 选中
     </p>
     <p>
      generate 一次
     </p>
     <p>
      到这里终于编译成功了
     </p>
     <h3 id="visual-studio-2019">
      Visual Studio 2019 编译运行
     </h3>
     <p>
      在运行的过程中也遇到了问题：GL/xx.h文件找不到
     </p>
     <p>
      解决的方案是从 OpenGL中点击各个头文件进去，下载复制，然后自己生成相关的文件：
      <a href="https://www.khronos.org/registry/OpenGL/index_gl.php">
       https://www.khronos.org/registry/OpenGL/index_gl.php
      </a>
     </p>
     <p>
      最后放到VS的相关目录下，我的是：D:\SoftWare\VisualStudio\IDE\VC\Tools\MSVC\14.16.27023\include\GL
     </p>
     <p>
      注：目录14.xx.xxx我有两个，不确定是那个，我就所有的都放了
     </p>
     <p>
      如视频中的，使用IDE打开工程解决方案：D:\Code\C++\self\minetest\build\ALL_BUILD.vcxproj
     </p>
     <p>
      选择release方式，x64平台
     </p>
     <p>
      all build
     </p>
     <p>
      然后在项目跟目录下：D:\Code\C++\self\minetest\bin\Release\minetest.exe
     </p>
     <p>
      点击后完美运行！
     </p>
     <h2 id="_4">
      参考链接
     </h2>
     <ul>
      <li>
       <a href="https://www.khronos.org/registry/OpenGL/index_gl.php">
        https://www.khronos.org/registry/OpenGL/index_gl.php
       </a>
      </li>
      <li>
       <a href="https://www.absingh.com/opengl/">
        Setup OpenGL with Visual Studio 2017 on Windows 10
       </a>
      </li>
     </ul>
    </article>
   </div>
   <!-- Footer -->
   <footer id="footer">
    <p class="copyright">
     © Untitled. Design:
     <a href="https://html5up.net">
      HTML5 UP
     </a>
     .
    </p>
   </footer>
  </div>
  <!-- BG -->
  <div id="bg">
  </div>
  <!-- Scripts -->
  <script src="../assets/js/jquery.min.js">
  </script>
  <script src="../assets/js/browser.min.js">
  </script>
  <script src="../assets/js/breakpoints.min.js">
  </script>
  <script src="../assets/js/util.js">
  </script>
  <script src="../assets/js/main.js">
  </script>
 </body>
</html>
